home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / extra / pro13 / vaa.c < prev    next >
Text File  |  1993-02-01  |  1KB  |  86 lines

  1. /*
  2.     vaa.C
  3.  
  4.     Copyright (C) 1993, Geoff Friesen B.Sc.
  5.     All rights reserved.
  6. */
  7.  
  8. #define    INCL_VAA
  9.  
  10. int v_aa (void)
  11. {
  12.    asm mov ax,1a00h        /* Check for VGA */
  13.    VIDEO_INT
  14.  
  15.    asm cmp al, 1ah        /* Found VGA? */
  16.    asm jnz v_aa1        /* No, branch */
  17.  
  18.    asm cmp bl, 7        /* Active VGA connected to BW monitor? */
  19.    asm jz v_aa4            /* Yes, branch */
  20.  
  21.    asm cmp bl, 8        /* Active VGA connected to COL monitor? */
  22.    asm jz v_aa3            /* Yes, branch */
  23.  
  24. v_aa1:
  25.  
  26.    asm mov ah, 12h        /* Check for EGA */
  27.    asm mov bl, 10h
  28.    VIDEO_INT
  29.  
  30.    asm cmp bl, 10h        /* Found EGA? */
  31.    asm jz v_aa2            /* No, branch */
  32.  
  33.    asm mov ax, 0
  34.    asm mov es, ax
  35.  
  36.    asm test BYTE PTR es:[487h], 8    /* EGA active? */
  37.    asm jnz v_aa2        /* No, branch */
  38.  
  39.    asm test WORD PTR es:[463h], 40h    /* BW or COLOR monitor? */
  40.    asm jnz v_aa5        /* Branch if COLOR */
  41.  
  42.    asm jmp SHORT v_aa6        /* Must be BW */
  43.  
  44. v_aa2:
  45.  
  46.    asm mov ax, 0
  47.    asm mov es, ax
  48.  
  49.    asm test WORD PTR es:[463h], 40h    /* CGA? */
  50.    asm jnz v_aa7        /* Yes, branch */
  51.  
  52.    asm jmp SHORT v_aa8        /* Must be MDA */
  53.  
  54. v_aa3:
  55.  
  56.    asm mov ax, VGA_COLOR
  57.    asm jmp SHORT v_aa9
  58.  
  59. v_aa4:
  60.  
  61.    asm mov ax, VGA_BW
  62.    asm jmp SHORT v_aa9
  63.  
  64. v_aa5:
  65.  
  66.    asm mov ax, EGA_COLOR
  67.    asm jmp SHORT v_aa9
  68.  
  69. v_aa6:
  70.  
  71.    asm mov ax, EGA_BW
  72.    asm jmp SHORT v_aa9
  73.  
  74. v_aa7:
  75.  
  76.    asm mov ax, CGA
  77.    asm jmp SHORT v_aa9
  78.  
  79. v_aa8:
  80.  
  81.    asm mov ax, MDA
  82.  
  83. v_aa9:
  84.  
  85.    return _AX;
  86. }